【PlantUML】

您所在的位置:网站首页 start uml画类图 【PlantUML】

【PlantUML】

2024-07-16 14:24| 来源: 网络整理| 查看: 265

写在前面

  UML,大家都听过,可是说清楚,能通过UML沟通的人倒不是很多。画图能帮助我们快速回忆一些信息,也方便做大型方案设计。本文将基于IDEA的插件——PlantUML(关于如何安装,请看文档底部的系列文章),并结合plantuml官网,整理出基本的最常用的元素来说明如何绘制类图。如果遇到文章中未整理的其他元素,可自行再去查看官方文档。

目录 写在前面一、基本概念二、具体步骤1.环境说明2.元素2.1 具体类2.2 抽象类、接口、注解、枚举2.3 包(命名空间) 3.访问权限4.关系5.布局 三、参考资料写在后面系列文章

一、基本概念

类图,无非就是用图形来快速表示我们平常所写的代码。这里我将代码归纳为以下3类:

1、元素 代码中我们经常用到的元素有: 包、类、抽象类、接口、注解、枚举 属性(成员变量)、方法(构造方法、普通)、性质(get、set) 2、访问权限 私有、默认、保护、公开 静态、抽象 3、关系 继承、实现、依赖、关联(聚合和组合)

好了,接下来我们一一用PlantUML来表示说明。

二、具体步骤 1.环境说明 名称说明Mac版本/操作系统/芯片MacBook Pro/macOS Monterey/Apple M1 ProIntellij IDEA版本Intellij IDEA 2019.2.3(Ultimate Edition)PlantUML Integration2.23.0 2.元素 2.1 具体类

先说具体类,其他的大同小异。

具体类:用矩形框表示, 矩形框由上到下分为4个部分: 第1部分:类名称 第2部分:属性(成员变量) 第3部分:方法 第4部分:性质(get/set)

PlantUML文件后缀名为.puml,文件以@startuml开始,以@enduml结束。

以下简单定义一个类,uml语法如下:

@startuml class Clazz { field: String -- Clazz() Clazz(String field) method(): String -- getField(): String setField(String field): void } note top: 第1部分:类名, class用于声明一个类 note left of Clazz::field 第2部分:属性,声明一个String类型的变量field end note note left of Clazz::Clazz 第3部分:方法,2个构造,1个普通 end note note left of Clazz::getField 第4部分:性质,get/set方法 end note @enduml

对应的uml类图: 在这里插入图片描述 对应的java Clazz类:

public class Clazz { String field; public Clazz() { } public Clazz(String field) { this.field = field; } String method() { // return something return null; } public String getField() { return field; } public void setField(String field) { this.field = field; } } 2.2 抽象类、接口、注解、枚举 @startuml abstract class AbstractQueuedSynchronizer interface Iterable annotation FunctionalInterface enum TimeUnit { DAYS HOURS MINUTES } @enduml

对应的uml类图:

2.3 包(命名空间) @startuml package java.utils #EEE { class A{} class B{} } note top: 用package关键字声明一个包 package java.util1 #EEE { class A{} class C{} } note top: 不同的包中不能使用相同的类名(classA在util包中已经声明,所以在utils1包中没生效) namespace java.util2 #EEE { class A{} class C{} } note top: 用namespace关键字声明一个工作空间,可以解决不同包同类名的问题 @enduml

对应的uml类图: 在这里插入图片描述 !提示:命名空间引用没有命名空间中的类,前面要加上一个英文的点(.);使用命名空间中的类时,要加命名空间。

@startuml class BaseClass namespace net.dummy #EEE { .BaseClass


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3